SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE proc [dbo].[SP_TXMVTO_CNTB_I23]    
/*-------------------------------------------------------------------*/    
/*----- Empresa           : OFISIS S.A.                          ----*/    
/*----- Cliente           : OFISIS S.A.                          ----*/    
/*----- Sistema           : Contabilidad                         ----*/    
/*----- Modulo            : Empresa                              ----*/    
/*----- Programa          : Asientos de gestion CASO 'ORI'                 ----*/    
/*----- Nombre            : SP_TXMVTO_CNTB_I23                   ----*/    
/*----- Script            : SP_TXMVTO_CNTB_I23                   ----*/    
/*----- Desarrollado por  : Luz Gonzalez                         ----*/    
/*----- Fecha             : 01/03/2002                           ----*/    
/*----- Base de Datos     : MS SQL Server                        ----*/    
/*----- Version BD        : 6.5                                  ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/    
/*----- Modificado 1 por  : Percy Garc-a                         ----*/    
/*----- Fecha Modifica    : 25/10/2004                           ----*/    
/*----- Detalle Modifica  : GRABA ST_DIFE_CAMB                   ---*/    
/*-------------------------------------------------------------------*/   
/*---------------------------------------------------------------------*/        
/*----- Modificado 2 por : Gustavo Espinoza E.                    -----*/        
/*----- Fecha Modifica   : 31/03/2005                             -----*/        
/*----- Detalle Modifica : Grabar Usuario y Fecha del APT         -----*/        
/*---------------------------------------------------------------------*/      
/*---------------------------------------------------------------------*/        
/*----- Modificado 3 por : PDGV                                   -----*/        
/*----- Fecha Modifica   : 21/05/2007                             -----*/        
/*----- Detalle Modifica : optimizacion de proceso de gestion    -----*/        
/*---------------------------------------------------------------------*/      
/*-------------------------------------------------------------------*/    
/*----- Drop proc SP_TXMVTO_CNTB_I23                             ----*/    
/*----- Grant all on SP_TXMVTO_CNTB_I23 to PUBLIC                ----*/    
/*----- EXEC SP_TXMVTO_CNTB_I23 '01', 1, '001',2002,3            ----*/    
/*-------------------------------------------------------------------*/    
@ISCO_EMPR   TD_VC_002,    
@ISCO_USUA          TD_VC_008,
@IDFE_USUA          TD_DT_001,
@INNU_CNTB_EMPR   TD_IN_001_CONT,     
@INNU_ANNO   TD_IN_004_ANNO,    
@INNU_MESE   TD_IN_002_MESE    
    
as    

Declare     
@CSCO_CNTA_CONT  TD_VC_020_CNTA,    
@CSCO_CNTA_DEST  TD_VC_020_CNTA,    
@CSTI_AUXI_EMPR         TD_VC_001,     
@CSCO_AUXI_EMPR         TD_VC_020,    
@CSCO_CNTA_EMPR   TD_VC_020_CNTA,    
@CSCO_ORDE_SERV         TD_VC_020,    
@VNNU_SECU  TD_IN_002,    
@CNNU_SECU_MAXI  TD_IN_002,    
@CDFE_ASTO_CNTB   TD_DT_001,    
@CSCO_MONE   TD_VC_003,    
@CSTI_CAMB  TD_VC_003,    
@CNFA_CAMB   TD_NU_015_006,    
@CNIM_MVTO_ORIG  TD_NU_016_004,    
@CNIM_MVTO_CNTB  TD_NU_016_004,    
@VSTI_OPER  TD_VC_003,    
@CSTI_OPER_CNTB  TD_VC_003,    
@CSDE_GLOS  TD_VC_100,    
@CSCO_OPRC_ORIG      TD_VC_003,    
@CSCO_UNID_ORIG      TD_VC_003,    
@CSNS_ASTO_ORIG         TD_VC_010,    
@CDFE_DOCU_VENC  TD_DT_001,     
@CNFA_CAMB_DIAR  TD_NU_015_006,     
@CDFE_DOCU_REFE  TD_DT_001,     
@VSCO_OPRC_GEST      TD_VC_003,    
@CNNU_PROC  TD_IN_001,     
@CNNU_PROC_SECU  TD_IN_001,    
@CNNU_SECU                 TD_IN_002,    
@VSCO_CNTA_DOCU  TD_VC_010,    
@VSTI_AUXI_EMPR   TD_VC_001,    
@VSCO_AUXI_EMPR   TD_VC_020,    
@VSTI_DOCU        TD_VC_003,    
@VSNU_DOCU        TD_VC_020,    
@VDFE_DOCU  TD_DT_001,     
    
@VSTI_AUXI_0001   TD_VC_001,    
@VSCO_AUXI_0001   TD_VC_020,    
@VSTI_DOCU_0001        TD_VC_003,    
@VSNU_DOCU_0001       TD_VC_020,    
@VDFE_DOCU_0001  TD_DT_001,     
    
@CSST_AUXI_EMPR       TD_VC_001,    
@VSST_AUXI_DEST       TD_VC_001,    
@VSST_AUXI_CONT       TD_VC_001,    
@VSST_DOCU_DEST       TD_VC_001,    
@VSST_DOCU_CONT       TD_VC_001,    
@VNFA_CMPR_OFIC         TD_NU_015_006,    
@VNFA_VNTA_OFIC         TD_NU_015_006,     
@VNFA_CAMB_DIAR         TD_NU_015_006,    
@VSST_CNTA_NATU         TD_VC_003,    
@VSCO_MONE  TD_VC_003,    
@VSCO_ORDE_SERV         TD_VC_020,    
@VSST_ORDE_DEST         TD_VC_001,    
@VSST_ORDE_CONT         TD_VC_001,  
@CSST_DIFE_CAMB         TD_VC_001,    
@CSST_DIFE_MAYO         TD_VC_001  


Create Table #TWMVTO_FCOAPAD(  
CO_UNID_CNTB    Varchar(3) NULL,  
CO_OPRC_CNTB    Varchar(3) NULL,  
NU_ASTO         Varchar(10) NULL,  
FE_ASTO_CNTB    DateTime NULL,  
CO_CNTA_EMPR    Varchar(20) NULL,        
TI_AUXI_EMPR    Varchar(1) NULL,  
CO_AUXI_EMPR    Varchar(20) NULL,  
CO_MONE         Varchar(3) NULL,  
TI_CAMB         Varchar(3) NULL,  
FA_CAMB         Numeric(15,6) NULL,  
TI_OPER         Varchar(3) NULL,        
IM_MVTO_ORIG    Numeric(16,4) NULL,  
IM_MVTO_CNTB    Numeric(16,4) NULL,  
DE_GLOS         Varchar(100) NULL,         
CO_CNTA_CONT    Varchar(20) NULL,  
CO_CNTA_DEST    Varchar(20) NULL,  
ST_AUXI_EMPR    Varchar(1) NULL,        
FE_DOCU_VENC    DateTime NULL,  
FA_CAMB_DIAR    Numeric(15,6) NULL,  
FE_DOCU_REFE    DateTime NULL,  
NU_PROC         Int NULL,  
NU_PROC_SECU    Int NULL,  
CO_ORDE_SERV    Varchar(20) NULL,        
NU_SECU         Numeric(18) NULL,  
ST_DIFE_CAMB    Varchar(1) NULL,
ST_DIFE_MAYO    Varchar(1) NULL
)        

Create Table #TWMVTO_CNTB_FCOAPAD   
(   
CO_EMPR        Varchar(2) NULL,   
NU_CNTB_EMPR   Int NULL,   
CO_UNID_CNTB   Varchar(3) NULL ,   
CO_OPRC_CNTB   Varchar(3) NULL,   
NU_ANNO        Int NULL,   
NU_MESE        Int NULL,        
NU_ASTO        Varchar(10) NULL,   
NU_SECU        Numeric(18) NULL,   
FE_ASTO_CNTB   DateTime NULL,   
CO_CNTA_EMPR   Varchar(20) NULL,   
TI_AUXI_EMPR   Varchar(1) NULL,   
CO_AUXI_EMPR   Varchar(20) NULL,        
TI_DOCU        Varchar(3) NULL,   
NU_DOCU        Varchar(20) NULL,   
FE_DOCU        DateTime NULL,   
TI_CAMB        Varchar(3) NULL,   
CO_MONE        Varchar(3) NULL,   
FA_CAMB        Numeric(15,6) NULL,   
TI_OPER        Varchar(3) NULL,        
IM_MVTO_ORIG   Numeric(16,4) NULL,   
IM_MVTO_CNTB   Numeric(16,4) NULL,   
DE_GLOS        Varchar(100) NULL,         
SI_MVTO_CNTB   Varchar(3) NULL,   
CO_UNID_ORIG   Varchar(3) NULL,   
CO_OPRC_ORIG   Varchar(3) NULL,         
NU_ASTO_ORIG   Varchar(10) NULL,   
FE_DOCU_VENC   DateTime NULL,   
FA_CAMB_DIAR   Numeric(15,6) NULL,   
FE_DOCU_REFE   DateTime NULL,        
NU_PROC        Int NULL,   
NU_PROC_SECU   Int NULL,   
CO_ORDE_SERV   Varchar(20) NULL, 
ST_GEST        Varchar(1) NULL,   
ST_REDO        Varchar(1) NULL,   
CO_CNTA_ORIG   Varchar(20) NULL ,   
NU_SECU_ORIG   Numeric(18) NULL,   
ST_OTRS        Varchar(20) NULL, 
ST_DIFE_CAMB   Varchar(1) NULL, 
ST_DIFE_MAYO   Varchar(1) NULL, 
CO_USUA_MODI   Varchar(8) NULL, 
FE_USUA_MODI   DateTime NULL, 
CO_USUA_CREA   Varchar(8) NULL, 
FE_USUA_CREA   DateTime NULL, 
NU_SECU_VALI   Numeric(18) IDENTITY,   
)             

Create Table #TWMAXI_ASTO
(
CO_UNID_CNTB Varchar(3) NULL,
CO_OPRC_CNTB Varchar(3) NULL,
NU_ASTO      Varchar(10) NULL,
NU_SECU_MAXI Numeric(18) NULL 
)

CREATE INDEX ITWMVTO_FCOAPAD_01 ON #TWMVTO_FCOAPAD (CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO)
WITH FILLFACTOR = 80 ON [PRIMARY]

CREATE INDEX ITWMVTO_CNTB_FCOAPAD_01 ON #TWMVTO_CNTB_FCOAPAD (CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO)
WITH FILLFACTOR = 80 ON [PRIMARY]

CREATE INDEX ITWMAXI_ASTO_FCOAPAD_01 ON #TWMAXI_ASTO (CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO)
WITH FILLFACTOR = 80 ON [PRIMARY]


Begin Transaction SP_TXMVTO_CNTB_I23_1        

Delete From TXMVTO_CNTB     
Where CO_EMPR      = @ISCO_EMPR And    
 NU_CNTB_EMPR = @INNU_CNTB_EMPR And    
 NU_ANNO      = @INNU_ANNO And    
 NU_MESE      = @INNU_MESE And    
        ST_GEST      = 'S'       
         
If @@ERROR <> 0  
Begin     
 Rollback Tran SP_TXMVTO_CNTB_I23_1    
 Return    
End 

Commit transaction SP_TXMVTO_CNTB_I23_1    
   
    
SELECT @VSCO_OPRC_GEST = CO_OPRC_CNTB     
FROM TTIDEN_OPER    
WHERE CO_EMPR = @ISCO_EMPR And     
 ID_OPRC = '011' And    
 NU_CNTB_EMPR = @INNU_CNTB_EMPR    
    
/*Select @VSCO_MONE = CO_MONE     
From TTCNTB_EMPR    
Where CO_EMPR = @ISCO_EMPR     
And NU_CNTB_EMPR = @INNU_CNTB_EMPR*/     
/*
Declare CU_TXMVTO_CNTB_I01_1 Cursor    
For*/    
Insert Into #TWMVTO_FCOAPAD(  
CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO,FE_ASTO_CNTB,CO_CNTA_CONT,CO_CNTA_DEST,        
TI_AUXI_EMPR,CO_AUXI_EMPR,CO_CNTA_EMPR,CO_MONE,TI_CAMB,FA_CAMB,TI_OPER,        
IM_MVTO_ORIG,IM_MVTO_CNTB,DE_GLOS,         
FE_DOCU_VENC,FA_CAMB_DIAR,FE_DOCU_REFE,NU_PROC,NU_PROC_SECU,NU_SECU,CO_ORDE_SERV,ST_DIFE_CAMB,ST_DIFE_MAYO )
Select T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.FE_ASTO_CNTB, T2.CO_CNTA_CONT,     
T2.CO_CNTA_DEST, T1.TI_AUXI_EMPR, T1.CO_AUXI_EMPR, T1.CO_CNTA_EMPR, T1.CO_MONE,     
T1.TI_CAMB, T1.FA_CAMB, T1.TI_OPER, T1.IM_MVTO_ORIG, T1.IM_MVTO_CNTB, T1.DE_GLOS,     
T1.FE_DOCU_VENC, T1.FA_CAMB_DIAR, T1.FE_DOCU_REFE, T1.NU_PROC, T1.NU_PROC_SECU, T1.NU_SECU,    
T1.CO_ORDE_SERV, t1.ST_DIFE_CAMB, t1.ST_DIFE_MAYO    
From TXMVTO_CNTB T1, TRAUXI_GEST T2, TMPLAN_EMPR T3    
Where   T1.CO_EMPR      = @ISCO_EMPR    
And T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR    
And T1.NU_ANNO      = @INNU_ANNO    
And T1.NU_MESE      = @INNU_MESE    
And T2.CO_EMPR      = T1.CO_EMPR    
And T2.CO_CNTA_EMPR = T1.CO_CNTA_EMPR    
And T2.TI_AUXI_EMPR = T1.TI_AUXI_EMPR    
And T2.CO_AUXI_EMPR = T1.CO_AUXI_EMPR    
And IsNull(Rtrim(T2.CO_CNTA_DEST), '') != ''    
And IsNull(Rtrim(T2.CO_CNTA_CONT), '') != ''    
And T1.CO_OPRC_CNTB != IsNull(Rtrim(@VSCO_OPRC_GEST), '')    
And  T1.SI_MVTO_CNTB = 'APR'    
And     Exists (Select CO_CNTA_EMPR From TMPLAN_EMPR Where CO_EMPR = @ISCO_EMPR    
                            And CO_CNTA_EMPR = T2.CO_CNTA_DEST    
                            And NU_ANNO = 9999 And TI_SITU = 'ACT'  )    
And     Exists (Select CO_CNTA_EMPR From TMPLAN_EMPR Where CO_EMPR = @ISCO_EMPR    
                            And CO_CNTA_EMPR = T2.CO_CNTA_CONT    
                            And NU_ANNO = 9999 And TI_SITU = 'ACT'  )    
    
And Not Exists (Select CO_EMPR From TMPLAN_ANNO     
Where CO_EMPR = @ISCO_EMPR     
And CO_CNTA_EMPR = t2.CO_CNTA_EMPR     
And NU_ANNO = 9999    
And DataLength(RTrim(IsNull(CO_CNTA_CONT, ''))) > 0    
And DataLength(RTrim(IsNull(CO_CNTA_DEST, ''))) > 0)    
    
And T3.CO_EMPR      = T2.CO_EMPR    
And T3.CO_CNTA_EMPR = T2.CO_CNTA_EMPR    
And T3.NU_ANNO = 9999    
And T3.TI_SITU ='ACT'
Union All    
Select  T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.FE_ASTO_CNTB, T2.CO_CNTA_CONT,     
T2.CO_CNTA_DEST, T1.TI_AUXI_EMPR, T1.CO_AUXI_EMPR, T1.CO_CNTA_EMPR, T1.CO_MONE,     
T1.TI_CAMB, T1.FA_CAMB, T1.TI_OPER, T1.IM_MVTO_ORIG, T1.IM_MVTO_CNTB, T1.DE_GLOS,     
T1.FE_DOCU_VENC, T1.FA_CAMB_DIAR, T1.FE_DOCU_REFE, T1.NU_PROC, T1.NU_PROC_SECU, T1.NU_SECU,    
T1.CO_ORDE_SERV, t1.ST_DIFE_CAMB, t1.ST_DIFE_MAYO    
From    TXMVTO_CNTB T1, TMPLAN_EMPR T2, TMOPRC_CNTB T3    
Where   T1.CO_EMPR = @ISCO_EMPR And    
 T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR And    

 T1.NU_ANNO = @INNU_ANNO And    
 T1.NU_MESE = @INNU_MESE And    
        T1.CO_EMPR = T2.CO_EMPR And     
        T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR And     
        IsNull(Rtrim(T2.CO_CNTA_DEST), '') != '' And     
        IsNull(Rtrim(T2.CO_CNTA_CONT), '') != '' And     
 T1.CO_OPRC_CNTB != IsNull(Rtrim(@VSCO_OPRC_GEST), '') AND    
 T1.SI_MVTO_CNTB = 'APR' And    
        Exists (Select CO_CNTA_EMPR From TMPLAN_EMPR Where CO_EMPR = @ISCO_EMPR    
                            And CO_CNTA_EMPR = T2.CO_CNTA_DEST    
       And TI_SITU = 'ACT' And NU_ANNO = 9999) And     
        Exists (Select CO_CNTA_EMPR From TMPLAN_EMPR Where CO_EMPR = @ISCO_EMPR    
         And CO_CNTA_EMPR = T2.CO_CNTA_CONT    
              And TI_SITU = 'ACT'And NU_ANNO = 9999) And     
        T2.NU_ANNO = 9999   AND    
        T2.TI_SITU ='ACT' And    
        T1.CO_EMPR = T3.CO_EMPR And     
        T1.CO_OPRC_CNTB = T3.CO_OPRC_CNTB And     
        T3.TI_SITU = 'ACT'   

--SACA ULTIMOS SECUENCIALES DE ASIENTOS AFECTOS A GESTION 
Insert Into #TWMAXI_ASTO(CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO,NU_SECU_MAXI)
Select t2.CO_UNID_CNTB,t2.CO_OPRC_CNTB,t2.NU_ASTO,Max(t1.NU_SECU)
From TXMVTO_CNTB t1,#TWMVTO_FCOAPAD t2
Where t1.CO_EMPR = @ISCO_EMPR 
And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR 
And t1.CO_UNID_CNTB = t2.CO_UNID_CNTB 
And t1.CO_OPRC_CNTB = t2.CO_OPRC_CNTB 
And t1.NU_ANNO = @INNU_ANNO 
And t1.NU_MESE = @INNU_MESE 
And t1.NU_ASTO = t2.NU_ASTO
Group By t2.CO_UNID_CNTB,t2.CO_OPRC_CNTB,t2.NU_ASTO

Declare CU_TXMVTO_CNTB_I01_1 Cursor For        
Select  
t1.CO_UNID_CNTB,t1.CO_OPRC_CNTB,t1.NU_ASTO,t1.FE_ASTO_CNTB,t1.CO_CNTA_CONT,t1.CO_CNTA_DEST,        
t1.TI_AUXI_EMPR,t1.CO_AUXI_EMPR,t1.CO_CNTA_EMPR,t1.CO_MONE,t1.TI_CAMB,t1.FA_CAMB,t1.TI_OPER,        
t1.IM_MVTO_ORIG,t1.IM_MVTO_CNTB,t1.DE_GLOS,t1.FE_DOCU_VENC,t1.FA_CAMB_DIAR,t1.FE_DOCU_REFE,
t1.NU_PROC,t1.NU_PROC_SECU,t1.NU_SECU,t1.CO_ORDE_SERV,t1.ST_DIFE_CAMB,t1.ST_DIFE_MAYO, 
t2.NU_SECU_MAXI
From #TWMVTO_FCOAPAD t1,#TWMAXI_ASTO t2
/*(Select CO_UNID_CNTB AS CO_UNID_CNTB,CO_OPRC_CNTB AS CO_OPRC_CNTB,NU_ASTO AS NU_ASTO, 
                         Max(NU_SECU) AS NU_SECU_MAXI From #TWMVTO_FCOAPAD
                         Group By CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO) t2*/
Where t1.CO_UNID_CNTB = t2.CO_UNID_CNTB 
And t1.CO_OPRC_CNTB = t2.CO_OPRC_CNTB 
And t1.NU_ASTO = t2.NU_ASTO
Order By t1.CO_UNID_CNTB,t1.CO_OPRC_CNTB,t1.NU_ASTO  
          
Open CU_TXMVTO_CNTB_I01_1    
Fetch CU_TXMVTO_CNTB_I01_1 into    
 @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG, @CSNS_ASTO_ORIG, @CDFE_ASTO_CNTB, @CSCO_CNTA_CONT, @CSCO_CNTA_DEST,    
        @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,     
        @CSCO_CNTA_EMPR, @CSCO_MONE, @CSTI_CAMB, @CNFA_CAMB, @CSTI_OPER_CNTB, @CNIM_MVTO_ORIG,     
        @CNIM_MVTO_CNTB, @CSDE_GLOS, @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,     
        @CNNU_PROC, @CNNU_PROC_SECU, @CNNU_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO,@CNNU_SECU_MAXI    
    
While @@Fetch_Status = 0    
  Begin    
    
---  Select @VNNU_SECU = 0    
  Select @VNNU_SECU = @CNNU_SECU_MAXI    
/*
    
  Select @VNNU_SECU  = MAX(NU_SECU) + 1    
  From TXMVTO_CNTB     
  Where     
  CO_EMPR  = @ISCO_EMPR    And    
  NU_CNTB_EMPR  = @INNU_CNTB_EMPR And    
  CO_UNID_CNTB  = @CSCO_UNID_ORIG And    
  CO_OPRC_CNTB  = @CSCO_OPRC_ORIG And    
  NU_ANNO  = @INNU_ANNO    And    
  NU_MESE  = @INNU_MESE    And    
  NU_ASTO  = @CSNS_ASTO_ORIG      
*/
    
  Select @VSST_AUXI_DEST = ST_AUXI_EMPR, @VSST_ORDE_DEST = ST_ORDE_SERV    
  From   TMPLAN_EMPR    
  Where  CO_EMPR = @ISCO_EMPR    
  And    CO_CNTA_EMPR = @CSCO_CNTA_DEST    
  AND NU_ANNO = 9999    
    
  Select @VSST_AUXI_CONT = ST_AUXI_EMPR, @VSST_ORDE_CONT = ST_ORDE_SERV    
  From   TMPLAN_EMPR    
  Where  CO_EMPR = @ISCO_EMPR    
  And    CO_CNTA_EMPR = @CSCO_CNTA_CONT    
  AND NU_ANNO = 9999    
    
   If @CSTI_OPER_CNTB = 'ABO'    
      Select @VSTI_OPER = 'CAR'    
   Else    
      Select @VSTI_OPER = 'ABO'    
      
If RTRIM(@CSCO_CNTA_CONT) IS NOT Null And RTRIM(@CSCO_CNTA_DEST) IS NOT Null    
 Begin    
  If @VSST_AUXI_DEST = 'N'     
    Begin    
        Select @VSTI_AUXI_EMPR = NULL    
        Select @VSCO_AUXI_EMPR = NULL     
    End    
  Else    
    Begin    
        Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR    
        Select @VSCO_AUXI_EMPR = @CSCO_AUXI_EMPR    
    End    
  If @VSST_ORDE_DEST = 'N'    
     Select @VSCO_ORDE_SERV = NULL    
  Else    
     Select @VSCO_ORDE_SERV = @CSCO_ORDE_SERV    
    
    Insert Into #TWMVTO_CNTB_FCOAPAD    
 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,    
 NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
 TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,    
 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,     
 SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,     
 NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,    
 NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO, 
 CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA )    
     Values    
 ( @ISCO_EMPR, @INNU_CNTB_EMPR, @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG,    
 @INNU_ANNO, @INNU_MESE, @CSNS_ASTO_ORIG, @VNNU_SECU, @CDFE_ASTO_CNTB,    
 @CSCO_CNTA_DEST, @VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR, NULL, NULL,    
        NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @CSTI_OPER_CNTB,          @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, 'APR',  @CSCO_UNID_ORIG,     
        @CSCO_OPRC_ORIG, @CSNS_ASTO_ORIG, @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR,     
        @CDFE_DOCU_REFE, @CNNU_PROC, @CNNU_PROC_SECU, @VSCO_ORDE_SERV, 'S', 'N', 
@CSCO_CNTA_EMPR,@CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO, 
@ISCO_USUA , @IDFE_USUA, @ISCO_USUA,@IDFE_USUA   )    
  /*  
 If @@error <> 0    
   Begin     
 Close CU_TXMVTO_CNTB_I01_1    
 Deallocate CU_TXMVTO_CNTB_I01_1    
 Rollback tran SP_TXMVTO_CNTB_I23    
        Return    
    End     
*/
/*Incrementa el contador de registros */    
--    Select @VNNU_SECU = @VNNU_SECU + 1    
    
  If @VSST_AUXI_CONT = 'N'     
    Begin    
        Select @VSTI_AUXI_EMPR = NULL    
        Select @VSCO_AUXI_EMPR = NULL    
    End    
  Else    
    Begin    
        Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR    
        Select @VSCO_AUXI_EMPR = @CSCO_AUXI_EMPR    
    End    
    
  If @VSST_ORDE_CONT = 'N'    
     Select @VSCO_ORDE_SERV = NULL    
  Else    
     Select @VSCO_ORDE_SERV = @CSCO_ORDE_SERV    
    
    Insert Into #TWMVTO_CNTB_FCOAPAD    
 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,    
 NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,    
 TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,    
 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,     
        CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR,     
        FE_DOCU_REFE, NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO, 
 CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA  )    
     Values    
 ( @ISCO_EMPR, @INNU_CNTB_EMPR, @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG, @INNU_ANNO, @INNU_MESE,     
        @CSNS_ASTO_ORIG, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_CONT, @VSTI_AUXI_EMPR,     
        @VSCO_AUXI_EMPR, NULL, NULL, NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @VSTI_OPER,     
        @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, 'APR',     
        @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG, @CSNS_ASTO_ORIG, @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR,     
        @CDFE_DOCU_REFE, @CNNU_PROC, @CNNU_PROC_SECU, @VSCO_ORDE_SERV, 'S', 'N', 
@CSCO_CNTA_EMPR,@CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO, 
@ISCO_USUA , @IDFE_USUA, @ISCO_USUA,@IDFE_USUA   )    
/*
 If @@error <> 0     
    Begin      
  Close CU_TXMVTO_CNTB_I01_1    
  Deallocate CU_TXMVTO_CNTB_I01_1    
  Rollback tran SP_TXMVTO_CNTB_I23    
  Return    
       End    
*/
--    Select @VNNU_SECU = @VNNU_SECU + 1    
  End    
Fetch CU_TXMVTO_CNTB_I01_1 into    
 @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG, @CSNS_ASTO_ORIG, @CDFE_ASTO_CNTB, @CSCO_CNTA_CONT, @CSCO_CNTA_DEST,    
        @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,     
        @CSCO_CNTA_EMPR, @CSCO_MONE, @CSTI_CAMB, @CNFA_CAMB, @CSTI_OPER_CNTB, @CNIM_MVTO_ORIG,     
        @CNIM_MVTO_CNTB, @CSDE_GLOS, @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,     
        @CNNU_PROC, @CNNU_PROC_SECU, @CNNU_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO,@CNNU_SECU_MAXI       
End    
    
Close CU_TXMVTO_CNTB_I01_1    
Deallocate CU_TXMVTO_CNTB_I01_1    


Begin Transaction SP_TXMVTO_CNTB_I23    

Insert Into TXMVTO_CNTB  
 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
 NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,        
 TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,   
 IM_MVTO_CNTB, DE_GLOS,SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,NU_ASTO_ORIG,   
 FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,NU_PROC, NU_PROC_SECU, CO_ORDE_SERV,   
 ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO, 
 CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA )      
Select CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
 NU_ASTO, NU_SECU + IsNull(NU_SECU_VALI,0), FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,        
 TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,   
 IM_MVTO_CNTB, DE_GLOS,SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,NU_ASTO_ORIG,   
 FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,NU_PROC, NU_PROC_SECU, CO_ORDE_SERV,   
 ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO, 
 CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA
From #TWMVTO_CNTB_FCOAPAD  

 If @@error <> 0             
   begin         
    rollback tran SP_TXMVTO_CNTB_I23        
    return        
   end    

Commit transaction SP_TXMVTO_CNTB_I23    

Return                    
/*--------------------------------- Fin -------------------------------*/











GO
